home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / boot / decprom / ds3100.md / RCS / main.c,v < prev    next >
Text File  |  1991-08-30  |  3KB  |  146 lines

  1. head     1.2;
  2. branch   ;
  3. access   ;
  4. symbols  ;
  5. locks    ; strict;
  6. comment  @ * @;
  7.  
  8.  
  9. 1.2
  10. date     90.06.27.14.57.11;  author shirriff;  state Exp;
  11. branches ;
  12. next     1.1;
  13.  
  14. 1.1
  15. date     90.02.16.16.14.14;  author shirriff;  state Exp;
  16. branches ;
  17. next     ;
  18.  
  19.  
  20. desc
  21. @@
  22.  
  23.  
  24. 1.2
  25. log
  26. @*** empty log message ***
  27. @
  28. text
  29. @/* 
  30.  * main.c --
  31.  *
  32.  *    The main program for booting.
  33.  *
  34.  * Copyright 1986 Regents of the University of California
  35.  * All rights reserved.
  36.  */
  37.  
  38. #ifdef  notdef
  39. static char rcsid[] = "$Header: /sprite/src/boot/decprom/RCS/main.c,v 1.1 90/02/16 16:14:14 shirriff Exp Locker: shirriff $ SPRITE (Berkeley)";
  40. #endif not lint
  41.  
  42.  
  43. #include "sprite.h"
  44. #include "kernel/machMon.h"
  45. #include "fsBoot.h"
  46. #include "boot.h"
  47. #undef NO_PRINTF
  48.  
  49. extern Fs_Device fsDevice;        /* Global FS device descriptor */
  50.  
  51. void Exit();
  52.  
  53. /*
  54.  *----------------------------------------------------------------------
  55.  *
  56.  * main --
  57.  *
  58.  *      This gets arguments from the PROM, calls other routines to open
  59.  *      and load the program to boot, and then transfers execution to that
  60.  *      new program.
  61.  *
  62.  * Results:
  63.  *    None.
  64.  *
  65.  * Side effects:
  66.  *    None.
  67.  *
  68.  *----------------------------------------------------------------------
  69.  */
  70.  
  71. main(argc,argv,argenv)
  72. int argc;
  73. char **argv;
  74. char **argenv;
  75. {
  76.     ReturnStatus status;
  77.     register int index;            /* Loop index */
  78.     register int entry;            /* Entry point of boot program */
  79.     Fsio_FileIOHandle *handlePtr;    /* Handle for boot program file */
  80.     char *fileName = "vmsprite";
  81.     register char *i;
  82.  
  83.     /*
  84.      * Set up state about the disk.
  85.      */
  86.     Mach_MonPrintf("Performing dec disk boot\n");
  87.     status = FsAttachDisk(&fsDevice);
  88. #ifndef SCSI3_BOOT
  89.     if (status != SUCCESS) {
  90.     Mach_MonPrintf("Can't attach disk, status <0x%x>\n",  status);
  91.     goto exit;
  92.     }
  93.     for (i=argv[0];*i != '\0'; i++) {
  94.     if (i[0]==')' && i[1] != '\0') {
  95.         fileName = i+1;
  96.     }
  97.     }
  98.     Mach_MonPrintf("Open File \"%s\"\n", fileName);
  99. #endif
  100.     /*
  101.      * Open the file to bootstrap.
  102.      */
  103.     status = Fs_Open(fileName, FS_READ, 0, &handlePtr);
  104.     if (status != SUCCESS) {
  105.     Mach_MonPrintf("Can't open \"%s\", <%x>\n", fileName, status);
  106.     goto exit;
  107.     }
  108.     entry = FileLoad(handlePtr);
  109.     if (entry != -1) {
  110.     Mach_MonPrintf("Transferring to location 0x%x\n", entry);
  111.     Boot_Transfer(entry,argc,argv,argenv);
  112.     }
  113. exit:
  114.     return;
  115. }
  116.  
  117. /*
  118.  * Exit is called by start.s
  119.  */
  120. void
  121. Exit()
  122. {
  123.     /*
  124.      * Return to start.s and then the PROM monitor.
  125.      */
  126.     return;
  127. }
  128. @
  129.  
  130.  
  131. 1.1
  132. log
  133. @Initial revision
  134. @
  135. text
  136. @d11 1
  137. a11 1
  138. static char rcsid[] = "$Header: /sprite/src/boot/dsprom/RCS/main.c,v 1.1 90/02/13 23:40:35 shirriff Exp $ SPRITE (Berkeley)";
  139. a64 2
  140.     Mach_MonPrintf("argc = %d, argv[0] = %08x\n",argc,argv);
  141.     Mach_MonPrintf("argv[0] = %s\n",argv[0]);
  142. d67 1
  143. a67 1
  144.         fileName = i;
  145. @
  146.